import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import{HomeComponent} from "./home/home.component";
import{ProductComponent} from "./product/product.component";
import{Code404Component} from "./code404/code404.component";
import{ProductDescComponent} from "./product-desc/product-desc.component";
import{SellerInfoComponent} from "./seller-info/seller-info.component";
import{ChatComponent} from "./chat/chat.component";
import{LoginGuard } from "./guard/login.guard";
import { UnsaveGuard } from "./guard/unsave.guard";
import { ProductResovle } from "./guard/product.resolve";
const routes: Routes = [
   {
    path: '',
    redirectTo: '/home',
    pathMatch: 'full'
  },
   {
    path: 'chat',
    component: ChatComponent,
    outlet: 'aux'
  },
  {
    path: 'home',
    component: HomeComponent
  },
  {
    path: 'product/:id',
    component: ProductComponent,
    children:[
      {
        path: '',
        component: ProductDescComponent,
        canActivate:[LoginGuard],//进入后执行里面可以存放多个守卫直至都返回ture
        canDeactivate: [UnsaveGuard]//离开时执行
      },
       {
        path: 'seller/:id',
        component: SellerInfoComponent
      }
    ],
    resolve: { //进入之前执行
        product: ProductResovle
    }
  },
  {
    path: '**',
    component: Code404Component
  }
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule],
  providers: [
      LoginGuard,
      UnsaveGuard,
      ProductResovle
    ]
})
export class AppRoutingModule { }
